

// 第一步设置全局
axios.defaults.baseURL = 'http://192.168.104.217:8280/';// 全局配置 地址 
// axios.defaults.headers.common['Authorization'] = "Basic Y2xpZW50OnNlY3JldA==";//token
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';//请求头

if (localStorage.getItem("Authorization")) {
    axios.defaults.headers.common['Authorization'] = "Basic "+JSON.parse(localStorage.getItem("Authorization")).access_token;
} else {
    axios.defaults.headers.common['Authorization'] = "Basic Y2xpZW50OnNlY3JldA==";
}
//第三步
//转换的函数成username=admin&password=123456&grant_type=password&scope=all  这种格式
function formData(params) { 
    // var arr = []
    var data = ''
    data=Qs.stringify(params)
    // for (const key in params) {
    //     if (Object.hasOwnProperty.call(params, key)) {
    //         const element = params[key];
    //         arr.push(key + '=' + element)
    //         data = arr.join('&')
    //     }
    // }
    // console.log(data);  username=admin&password=123456&grant_type=password&scope=all
    return data
}
//转换的函数
//这里是第二步 Request接收 对请求的数据进行处理
axios.defaults.transformRequest = [function (data) {
    //这里的data 接受到的就是 对象数据 键值和键值对
    // console.log(data); 
    return formData(data);
}];

 
//第 四步 Response   处理  对接受的数据进行处理
axios.defaults.transformResponse = [function (data) {
   // console.log(data);//接受到的是 一群乱码 理解为密码?
    // 对接收的 data 进行任意转换处理
    let params = JSON.parse(data)
   // console.log(params); 
//    这段还不懂
    if (params.access_token) {
        localStorage.setItem('Authorization', params.access_token)
    }
//    这段还不懂    
    return JSON.parse(data);
}];









 //第5 步 再请求之前做什么 请求拦截器
axios.interceptors.request.use(function (config) {
   // console.log(config);//所有的 axios 请求的数据
    // let content = document.getElementsByClassName("content")[0]
    // content.innerHTML = "加载中。。。"
    // 在发送请求之前做些什么
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器

 //第六 步 请求完毕后做什么
axios.interceptors.response.use(function (response) {

    let content = document.getElementsByClassName("content")[0]
    // content.innerHTML = "加载成功"

    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    return response;
}, function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error);
});





